/*******************************************************************************
 * Copyright 2005-2010, Andrew McVeigh.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/
package com.intrinsarc.backbone.runtime.api;

import java.util.*;

public class PortHelper
{
	public static <T> T fill(List<T> list, T provided, int index)
	{
		if (index == -1)
		{
			// find a possible null, before increasing the size
			int possible = list.indexOf(null);
			if (possible == -1)
			{
				list.add(provided);
			}
			else
			{
				list.set(possible, provided);
			}
		}
		else
		{
			int size = list.size();
			for (; size <= index; size++)
					list.add(null);
			list.set(index, provided);
		}
		return provided;
	}
	
	public static void remove(List<?> list, Object provided)
	{
		list.remove(provided);
	}
}
